home *** CD-ROM | disk | FTP | other *** search
- #!/usr/app/bin/perl
-
- eval 'exec /usr/app/bin/perl -S $0 ${1+"$@"}'
- if 0; # not running under some shell
-
- use Gimp qw(:auto __ N_);
- use Gimp::Fu;
- use Gimp::Util;
-
- #Gimp::set_trace(TRACE_CALL);
-
- sub my_innerbevel {
- my ($image, $drawable, $bg_col, $bl1, $bl2, $elev, $depth, $rad_tog) = @_;
- $drawable->has_alpha or die "You can't run this script without an ALPHA CHANNEL!!";
- my $img = gimp_image_new (256, 100, RGB_IMAGE);
- $drawable->image->selection_all;
- $drawable->edit_copy;
- gimp_selection_none ($image);
- if ($rad_tog == 0) {
- my $bg_layer;
- $bg_layer=$img->layer_new($drawable->width,$drawable->height,$image->layertype(1), "Background", 100, NORMAL_MODE);
- gimp_palette_set_background ($bg_col);
- $bg_layer->drawable_fill(BG_IMAGE_FILL);
- $img->add_layer($bg_layer,0);
- }
- $img->resize($drawable->width,$drawable->height, 0, 0);
- my $text1_lay;
- $text1_lay=$img->layer_new($drawable->width,$drawable->height,$image->layertype(1), "Text -1-", 100, NORMAL_MODE);
- $img->add_layer($text1_lay,-1);
- gimp_edit_clear ($text1_lay);
- $text1_lay->edit_paste(0)->floating_sel_anchor;
- $text1_lay->set_preserve_trans(1);
- gimp_palette_set_foreground ($bl1);
- gimp_palette_set_background ($bl2);
- @start = ($text1_lay->width / 2 - 5, 0);
- @end = ($text1_lay->width / 2 + 5, $text1_lay->height);
- gimp_blend ($text1_lay, 0, 0, 0, 100, 0, 0, 0, 2, 0.30, @start, @end);
- my $text2_lay;
- $text2_lay=$text1_lay->copy(1);
- $img->add_layer($text2_lay, -1);
- gimp_palette_set_background ([255, 255, 255]);
- $text2_lay->edit_fill(BG_IMAGE_FILL);
- $text2_lay->set_preserve_trans(0);
- $text1_lay->set_preserve_trans(0);
- plug_in_gauss_rle ($text2_lay, 6, 1, 1);
- plug_in_bump_map ($img, $text1_lay, $text2_lay, 110.0, $elev, $depth, 0, 0, 0, 0, 0, 0, 0);
- $text2_lay->invert;
- $img->lower_layer($text2_lay);
- $text2_lay->translate(2, 3);
- $text2_lay->set_opacity(75);
- if ($rad_tog == 1) {
- $img->flatten;
- gimp_convert_indexed ($img, 0, MAKE_PALETTE, 256, 0, 0, "");
- my $new = gimp_image_active_drawable ($img);
- gimp_layer_add_alpha ($new);
- gimp_by_color_select ($new, [255, 255, 255], 55, ADD, 0, 0, 0.0, 0);
- gimp_edit_clear ($new);
- gimp_selection_none ($img);
- } else {
- $img->flatten;
- }
- gimp_display_new ($img);
- exit main;
- }
- $help=<<EOF.$help;
- This script will produce a nice blended beveled logo from your alpha
- layer, which must have a black text. You can choose the initial and finals colours
- of the blend, the background, and how to tweak the bevel effect.
- It uses a techinque quite similar to that in the Inner Bevel Logo.
-
- EOF
-
- register "make_bevel_logos",
- "A script to get blended beveled logos",
- $help,
- "Michele Gherlone <mikem\@enet.it>",
- "(c) 2000 M. Gherlone",
- "20000130",
- N_"<Image>/Filters/Logulator/Blended II...",
- "*",
- [
- [PF_COLOUR , 'choose_bg_colour', "Choose the background colour", [255, 255, 255]],
- [PF_COLOUR , 'blend_start', "Choose the 1st blend colour", [247, 231, 9]],
- [PF_COLOUR , 'blend_stop', "Choose the 2nd blend colour", [255, 0, 0]],
- [PF_SLIDER , 'strength_of_bevel', "Strength of bevel", 45.00, [0.00, 60.00, 0.50]],
- [PF_SLIDER , 'depth_of_bevel', "Depth of bevel", 4, [0, 60, 1]],
- [PF_RADIO , 'user_choice', "The user's choice", 0, [Background => 0, Transparent => 1]],
- ],
- \&my_innerbevel;
- exit main;
-
-